2 - Principles of Programming Languages [ID:11055]
50 von 580 angezeigt

So, logic programming languages.

There are basically only three logic languages out there.

There's very little research being done on logic languages now.

The main dominant programming language for logic is Prolog,

which we'll go into for most of the lecture today.

So a little bit about administration.

The registration for in myCompost is now open,

so you can register for the exam.

There are two options.

You can do this lecture together with the history of programming languages

as a module, a bigger module for your module.

Then email ProofSnyder.

Otherwise, email ProofPhilipsen for getting a time and date.

That's it.

So what is a logic?

When do we call something a logic?

First, we need to have facts, and we need to have rules,

and we should be able to infer new facts from previous rules.

If you have those things together, then we have a logic.

On top of those, we have a number of restrictions to cut down on the number of possibilities

in what we call a logic.

So first order logic, no, first predicate logic.

In predicate logic, there are only constants, right?

So something, somebody has a given age, right, is a constant.

So a boolean, as a predicate, is sort of like a function that evaluates true or false.

It's like a fact or a rule.

Then there is first order logic in which we have variables.

For each thing, it should be that, or there exists some element in a set such that.

In second order logic, we have set,

where you can reason for all items in a set.

It should be that something includes something else or excludes something else.

Inclusion and exclusion from sets.

And type logics, which is more or less like having objects in a logic.

So a human is something bigger than an animal.

And for all animals, it should be the predicate X.

That means that for all human, it should hold as well because of a transitive relation.

Those are some logics.

When we extend that towards programming languages, all of these logics, right,

then logic programming is a little bit towards having a declarative programming languages.

In a declarative programming language, you say what you want to solve and not how you want to solve it, right?

In imperative languages, it's the other way around.

You say how you want to solve it, and then as a byproduct, the solution comes out.

In declarative languages, I state what I want, but not how to get there.

So the recipe of how to solve a solution, that is basically down to search.

The system should search somehow to find from the given facts a solution.

So now we have a searching problem.

How do we specify a given search, right?

That's an open problem.

And how to specify search strategies, search bias, that is open research still.

Right.

Zugänglich über

Offener Zugang

Dauer

00:54:17 Min

Aufnahmedatum

2013-05-29

Hochgeladen am

2019-05-09 13:39:02

Sprache

en-US

Einbetten
Wordpress FAU Plugin
iFrame
Teilen